#include <stdio.h>

int b = 20; //全局变量 ：定义时不被任何函数包含       静态全局区
            //全局变量能被所有函数访问
            //少用全局变量

//指针函数 ： 返回值是指针的函数
int* func()
{
    static int a = 10;  //static : 静态关键字 : 修饰的变量会被放在静态全局区中
                        //静态全局区 ： 直到程序结束才会回收释放
                        //static ：1、静态变量只初始化一次
                        //         2、延长变量的生命周期
    a++;
    b++;
    return &a;
}

int add(int a,int b)
{
    return a + b;
}



int main()
{
    //局部变量的优先级高于局部变量
    //名字遮蔽
    // int b = 10;
    // int *p = func();
    // func();
    // printf("%d\n",*p);
    // printf("b = %d\n",b);
    // return 0;

    //函数指针：指向函数的指针
    int (*p)(int ,int) = add;
    int c = p(1,2);
    printf("%d\n",c);
    return 0;
}